package com.sisgesbyte.services.sistema;

import javax.ejb.Stateless;
import java.util.Properties;  
import javax.mail.Message;  
import javax.mail.PasswordAuthentication;
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeMessage;

import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.services.commonBean.GenericResponse;

@Stateless
public class EmailSenderServiceImpl implements EmailSenderService {

	@Override
	public GenericResponse sendEmail(String idTransaccion,String asunto,String correos,
			String usuarioCorreoServidor, String claveCorreoServidor,
			String mensaje) {
		
		GenericResponse response = new GenericResponse();
		Properties props = new Properties();
		props.put("mail.smtp.host", "smtp.gmail.com");
		props.put("mail.smtp.socketFactory.port", "465");
		props.put("mail.smtp.socketFactory.class",
				"javax.net.ssl.SSLSocketFactory");
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.port", "465");
		final String usuario = usuarioCorreoServidor;
		final String clave=claveCorreoServidor;
		Session session = Session.getInstance(props,
			new javax.mail.Authenticator() {
				protected PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication(usuario,clave);
				}
			});
 
		try {
			Message message = new MimeMessage(session);
			message.setFrom(new InternetAddress(usuarioCorreoServidor));
			message.setRecipients(Message.RecipientType.BCC,
					InternetAddress.parse(correos));
			message.setSubject(asunto);
			// Stilos: "<div style=\"color:red;\">BRIDGEYE</div>";
			//String messagehtm = "<html><table><tr><td>Holaaaa</td><td>david</td></tr><tr><td>Villanueva</td><td>Villalobos</td></tr></table></html>";
			message.setContent(mensaje, "text/html; charset=utf-8");
			Transport.send(message);
			System.out.println("Envio correctamente");
			response.setCodigoRespuesta(ConstantesInternasSistema.CODIGO_EXITO);
			response.setMensajeRespuesta(ConstantesInternasSistema.MENSAJE_EXITO);
			response.setIdTransaccion(idTransaccion);
 
		}catch(Exception e){
			System.out.println("Error al enviar el email : "+ e.getMessage());
			response.setCodigoRespuesta(ConstantesInternasSistema.ENVIAR_EMAIL_COD_IDT67);
			response.setMensajeRespuesta(ConstantesInternasSistema.ENVIAR_EMAIL_MSJ_IDT67);
		}
		
		return response;
	}



}
